<?php 
define("CCTRL", "product");
define("CCTRLNAME", "product");
define("TOKEN", "957fbdc64b12df70ec452cc0342c93c6");
session_start();
class product extends CI_Controller  {

        /**
        * Index Page for this controller.
        *
        * Maps to the following URL
        * 		http://example.com/index.php/welcome
        *	- or -  
        * 		http://example.com/index.php/welcome/index
        *	- or -
        * Since this controller is set as the default controller in 
        * config/routes.php, it's displayed at http://example.com/
        *
        * So any other public methods not prefixed with an underscore will
        * map to /index.php/welcome/<method_name>
        * @see http://codeigniter.com/user_guide/general/urls.html
        */
       private $_configs = null;
       function __construct()
        {
            parent::__construct();
            $this->load->helper('url');
            $this->load->library('smarty3');
            $this->load->model('colmod/product_colmod');
            $this->load->model('APanel/product_model');
            $this->load->model('APanel/category_model');
            $this->load->model('APanel/region_model');
            $this->load->model('APanel/my_model');
            include APPPATH . 'libraries/defu.php';
            if(!isset($_SESSION["ADP"][CCTRL]["display"]))$_SESSION["ADP"][CCTRL]["display"]=0;
            if(!isset($_SESSION["ADP"][CCTRL]["pageSize"]))$_SESSION["ADP"][CCTRL]["pageSize"]=100;
            $this->colModel=new product_colmod();
            $this->smarty=new CI_Smarty3();$this->smarty->error_reporting = E_ALL & ~E_NOTICE;
            $this->product_model=new product_model();
            $this->category_model=new category_model();
            $this->region_model=new region_model();
            $this->my_model=new my_model("dtb_product");
        }
        public function index()
	{
            //unset($_SESSION["ADP"][CCTRL."-JQX"]["colModel"]);
            if(!checkAuthority(CCTRLNAME)){
                $this->smarty
                        ->assign('_SESSION', $_SESSION)
                        ->display("sys/04_access_denied");
                return;
            }
            if(isset($_SESSION["ADP"][CCTRL."-JQX"]["colModel"]))
                $colModel=$_SESSION["ADP"][CCTRL."-JQX"]["colModel"];
            else{
                $colModel=$this->colModel->get();
                $_SESSION["ADP"][CCTRL."-JQX"]["colModel"]=$colModel;
            }
            $Data["colModel"]=$colModel;
            $Data["display"]=$_SESSION["ADP"][CCTRL]["display"];
            $Data["pageSize"]=$_SESSION["ADP"][CCTRL]["pageSize"];
            $this->smarty
                    ->assign('_SESSION', $_SESSION)
                    ->assign('Data', $Data)
                    ->display("APanel/".CCTRL."/".CCTRL);
	}
        function Edit($ID=""){
            $Data=null;
            $strCategorys="";
            $strRegions="";
            if($ID!=""){
                $pr=$this->my_model->get($ID);
                if(count($pr)>0){
                    $Data["OBJ"]=objectToArray($pr[0]);
                    $strCategorys=$Data["OBJ"]["Categorys"];
                    $strRegions=$Data["OBJ"]["Regions"];
                }
            }
            $Categorys=$this->category_model->gets();
            $Regions=$this->region_model->getCitys();
            foreach ($Categorys as $c){
                $tmp=null;
                $tmp["label"]=$c->Name;
                $tmp["value"]=$c->ID;
                if (strpos($strCategorys, "--$c->ID--") === false) {
                    $tmp["checked"]=false;
                }else{
                    $tmp["checked"]=true;
                }
                $Data["Categorys"][]=$tmp;
            }
            foreach ($Regions as $r){
                $tmp=null;
                $tmp["label"]=$r->TenTinhThanh;
                $tmp["value"]=$r->ID;
                if (strpos($strRegions, "--$r->ID--") === false) {
                    $tmp["checked"]=false;
                }else{
                    $tmp["checked"]=true;
                }
                $Data["Regions"][]=$tmp;
            }
            $this->smarty
                    ->assign('_SESSION', $_SESSION)
                    ->assign('Data', $Data)
                    ->display("APanel/".CCTRL."/02_edit");
        }
        function Save(){
            $msgs=array();
            $Name=$this->input->post("Name");
            if( $Name===false || $Name==""){
                $msgs[]="[Should be non-empty] Tên không được để trống.";
            }
            $alias=converturl($Name);
            if( $alias==""){
                $msgs[]="[Should be non-empty] Alias không được để trống.";
            }
            $Title=$this->input->post("Title");
            if( $Title===false || $Title==""){
                $msgs[]="[Should be non-empty] Tiêu đề không được để trống.";
            }
            $Image=$this->input->post("Image");
            if( $Image===false || $Image==""){
                $msgs[]="[Should be non-empty] Hình ảnh không được để trống.";
            }
            $Categorys=$this->input->post("Categorys");
            if( $Categorys===false || $Categorys==""){
                $msgs[]="[Should be non-empty] Danh mục không được để trống.";
            }elseif(!is_array($Categorys) || count($Categorys)==0){
                $msgs[]="[Should be non-empty] Danh mục không được để trống.";
            }
            $Regions=$this->input->post("Regions");
            if( $Regions===false || $Regions==""){
                $msgs[]="[Should be non-empty] Khu vực không được để trống.";
            }elseif(!is_array($Categorys) || count($Categorys)==0){
                $msgs[]="[Should be non-empty] Khu vực không được để trống.";
            }
            $Content=$this->input->post("Content");
            if( $Content===false || $Content==""){
                $msgs[]="[Should be non-empty] Nội dung không được để trống.";
            }
            $Amount=$this->input->post("Amount");
            if( $Amount===false || $Amount==""){
                $msgs[]="[Should be non-empty] Số lượng không được để trống.";
            }elseif((int)$Amount<0){
                $msgs[]="[Shound be is numeric] Số lượng phải là số dương.";
            }
            $UnitPrice=$this->input->post("UnitPrice");
            if( $UnitPrice===false || $UnitPrice==""){
                $msgs[]="[Should be non-empty] Đơn giá không được để trống.";
            }elseif((int)$UnitPrice<0){
                $msgs[]="[Shound be is numeric] Đơn giá phải là số dương.";
            }
            $UnitsOnOrder=$this->input->post("UnitsOnOrder");
            if( $UnitsOnOrder===false || $UnitsOnOrder==""){
                $msgs[]="[Should be non-empty] Giá bán không được để trống.";
            }elseif((int)$UnitsOnOrder<0){
                $msgs[]="[Shound be is numeric] Giá bán phải là số dương.";
            }
            $StartDate=$this->input->post("StartDate");
            if( $StartDate===false || $StartDate==""){
                $msgs[]="[Should be non-empty] Ngày bắt đầu không được để trống.";
            }
            $EndDate=$this->input->post("EndDate");
            if( $EndDate===false || $EndDate==""){
                $msgs[]="[Should be non-empty] Ngày kết thúc không được để trống.";
            }
            $Album=$this->input->post("Album");
            if( $Album===false || $Album==""){
                $Album=array();
            }elseif(strlen(json_encode($Album))>=2000){
                $msgs[]="[Is Invalid] Album quá dài.";
            }
            if(count($msgs)>0){
                $code=-44;
                $msg="";
                foreach ($msgs as $m){
                    $msg.="$m<br/>";
                }
            }else{
                
                $Params=array(
                    "ProductName"   =>  $Name,
                    "Alias"         =>  $alias,
                    "ProductTitle"  =>  $Title,
                    "Image"         =>  $Image,
                    "Categorys"     =>  "--".implode("--",$Categorys)."--",
                    "Regions"       =>  "--".implode("--",$Regions)."--",
                    "Content"       =>  $Content,
                    "Image"         =>  $Image,
                    "Supplier"      =>  $this->input->post("Supplier"),
                    "QuantityPerUnit"=> $this->input->post("QuantityPerUnit"),
                    "Amount"        =>  (int)$Amount,
                    "Sold"          =>  (int)$this->input->post("Sold"),
                    "UnitPrice"     =>  (double)$UnitPrice,
                    "UnitsOnOrder"  =>  (double)$UnitsOnOrder,
                    "StartDate"     =>  $StartDate,
                    "EndDate"       =>  $EndDate,
                    "Tag"           =>  $this->input->post("Tag"),
                    "Feature"       =>  $this->input->post("Feature"),
                    "HowToUser"     =>  $this->input->post("Condition"),
                    //"HowToUser"     =>  $this->input->post("HowToUser"),
                    "Image"         =>  $Image,
                    "Album"         =>  json_encode($Album)
                );
                //echo json_encode(array("code"=>-1,"msg"=>"<pre>".print_r($Params,true)."</pre>"));return;
                $ID=$this->input->post("ID");
                if(!checkAuthority(CCTRL,false)){
                    $code=-1;
                    $msg="[Access Denied] Bạn không có quyền thực hiện thao tác này.<br/> Mọi thay đổi dữ liệu đều không được công nhận.";
                }elseif($ID!==false && $ID!==""){
                    if($this->product_model->update($ID,$Params)){
                        $code=1;
                        $msg="[Success] Thành công. Dữ liệu đã được cập nhật.";
                    }else{
                        $code=-1;
                        $msg="[Fail] Thất bại. Vui lòng kiểm tra dữ liệu và thử lại.";
                    }
                }else{
                    $Params["status"]="false";
                    if($this->product_model->insert($Params)){
                        $code=1;
                        $msg="[Success] Thành công. Dữ liệu đã được thêm.";
                    }else{
                        $code=-1;
                        $msg="[Fail] Thất bại. Vui lòng kiểm tra dữ liệu và thử lại.";
                    }
                }
            }
            echo json_encode(array("code"=>$code,"msg"=>$msg));
        }
        function jqgrid_data(){
            $colModel=$this->colModel->get();
            //$Categorys=$this->category_model->gets();
            //$Regions=$this->region_model->getByParent();
            $orders=array();
            $result['total_rows']=0;
            //if($this->checkauthority()>=0){
                $result=$this->product_model->binding();
                $rows=$result['rows'];
                // get data and store in a json array
                foreach ($rows as $row) {
                    $ca_value="";
                    $ca_arr=  explode("--", "--".$row->Categorys."--");
                    foreach ($ca_arr as $ca){
                        if($ca!=null && $ca!="")
                        $ca_value.="<tt title='$ca'>$ca</tt>&nbsp;";
                    }
                    $re_value="";
                    $re_arr=  explode("--", "--".$row->Regions."--");
                    foreach ($re_arr as $re){
                        if($re!=null && $re!="")
                        $re_value.="<tt title='$re'>$re</tt>&nbsp;";
                    }
                    
                    $cel=array();
                    foreach ($colModel as $col){
                        $f=$col["datafield"];
                        $cel[$f]=$row->$f;
                    }
                    $cel['Status']      =($row->Status=="true" || $row->Status=="Public")?true:false;
                    $cel['Categorys']   =$ca_value;
                    $cel['Regions']     =$re_value;
                    $orders[] = $cel;
                }
            
            $data[] = array(
                'TotalRows' => $result['total_rows'],
                'Rows' => $orders
            );
            echo json_encode($data);
        }
        
        
        
        
       
        
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */